perm filename FORMAT[LSP,JRA]17 blob sn#358360 filedate 1978-05-29 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	
C00013 00003	.TURN ON "¬" FOR "%"
C00014 ENDMK
C⊗;

.TURN ON "{#%"
.TURN OFF "-" << Too many minus signs would be mistaken for hyphens. >>

.DEVICE XGP;
.FILL PREFACE 0;<<**************>>

.TENPOINT←FALSE

.If TENPOINT THEN
.            START FILL SPACING 24 MILLS END;  <<for PHOTO-SETTING 10 point**********>>
.            ELSE
.START FILL SPACING 20 MILLS END; << for 12 point**********>>


.comment
.Margin Setting Example
.
.The following example defines a macro that given a page size adjusts the page
.frame to fit font 1 on a page with resonable margins.
.;
.charw←12

.MACRO PAPER_SIZE(X,Y) ⊂ MILL_PAPER_HEIGHT←Y; MILL_PAPER_WIDTH←X; ⊃
.
.VARIABLE PAGE_HEIGHT, PAGE_WIDTH
.
.MACRO MARGINS (εLEFT,εRIGHT,εTOP,εBOTTOM)  ⊂ BEGIN GROUP SELECT 1;
.    IF MILL_PAPER_HEIGHT ≤ 0 THEN MILL_PAPER_HEIGHT←11000;  <<8.5" X 11" DEFAULT>>
.    IF MILL_PAPER_WIDTH  ≤ 0 THEN MILL_PAPER_WIDTH ← 8500;
.
.    BIT_RASTER_WIDTH←(MILL_PAPER_WIDTH*HBPI)/1000;
.    BIT_RASTER_HEIGHT←(MILL_PAPER_HEIGHT*VBPI)/1000;
.
.    IF LEFT ≥ 0 THEN ODDLEFTBORDER←LEFT ELSE ODDLEFTBORDER←1500;
.    IF RIGHT ≥ 0 THEN RIGHTBORDER←RIGHT ELSE RIGHTBORDER←1000;
.    IF TOP ≥ 0 THEN TOPBORDER←TOP ELSE TOPBORDER←1000;
.    IF BOTTOM ≥ 0 THEN BOTTOMBORDER←BOTTOM ELSE BOTTOMBORDER←500;
.
.    EVENLEFTBORDER←ODDLEFTBORDER; XGP_VSP←(MILLSPACING*VBPI)/1000;
.
.    PAGE_WIDTH←(BIT_RASTER_WIDTH-(HBPI*(ODDLEFTBORDER+RIGHTBORDER))/1000)/CHARW
.    PAGE_HEIGHT←(BIT_RASTER_HEIGHT-(VBPI*(TOPBORDER+BOTTOMBORDER))/1000)
.      /(CHARH+XGP_VSP);
.
. hlines←page_height-2;
. wchars←page_width
.
.    PAGE FRAME PAGE_WIDTH WIDE PAGE_HEIGHT HIGH
.    TITLE AREA HEADING LINES 1 TO 2
.    AREA TExT LINES 3 TO PAGE_HEIGHT-2
.    TITLE AREA FOOTING LINE PAGE_HEIGHT
.    PLACE TExT
.    END ⊃;

.area text lines 3 to 47 ;<<**********>>

.HLINES← IF XCRIBL THEN 45 ELSE 53 	<< 49 NUMBER OF LINES/PAGE >>
.WCHARS← IF XCRIBL THEN 81 ELSE 69 	<< 81 NUMBER OF CHARS/LINE >>


.comment
.
.!XGPLFTMAR←200 
.
.
.PAGE FRAME HLINES+2 HIGH WCHARS WIDE 
.AREA TEXTER LINES 4 TO HLINES CHARS 1 TO WCHARS 
.TITLE AREA FOOTING LINE HLINES+1 CHARS 1 TO WCHARS 
.TITLE AREA HEADING LINES 1 TO 3 CHARS 1 TO WCHARS 
.PLACE TEXTER 
.;

.VARIABLE SECNAME, SSNAME, SSNUMBER, FOO, CATEGORY;
.VARIABLE FIRST_PAR,par; <<**********>>
.par←6;<<**********>>

.COUNT SECTION;
.COUNT SUBSECTION IN SECTION PRINTING "!.1";
.COUNT APPENDIX;

.MACRO SEC(NAME,ABBREV,PHRASE,LABEL) ⊂
.IF SSNAME ≠ SECNAME THEN FOO←TRUE ELSE FOO←FALSE;
.	SSNAME ← SECNAME ← IF "ABBREV"≠NULL THEN "ABBREV" ELSE "NAME";
.	SSNUMBER ← (SECTION+1)&"."
.	SKIP TO COLUMN 1; LABEL  NEXT SECTION!;
.		BEGIN
.		flush right <<center>>
.GROUP SKIP 3 <<6 ********>>
%2CHAPTER {!}%*
.		SKIP 4 <<was blank>>
.NAM←↑"NAME";
.nam1←"name";
.fill;
.KRK;
¬A{nam1}%*
.<<{NAM}%*>>
.		SKIP 12;
.		CAT("PHRASE","NAME");
.IF FOO THEN	SEND CONTENTS ⊂ SKIP 2;
∂4{SECTION!}∂8{NAM}→{PAGE!}{SKIP;⊃
.ELSE		SEND CONTENTS ⊂ SKIP ;
∂4{SECTION!}∂8{NAM}→{PAGE!}{SKIP;⊃
.		END;
.               ⊃



.MACRO SS(NAME,PHRASE,LABEL) ⊂
.		SSNUMBER←SECTION!&"."&(SUBSECTION+1);
.		SSNAME←"NAME";
.		IF LINES≤7 THEN NEXT PAGE;
.		LABEL  NEXT SUBSECTION!;
.		BEGIN
.		SKIP 2
.		CAT("PHRASE","NAME");
.		SEND CONTENTS ⊂ 
∂(12){!}∂(18)NAME\∞ ∞ ∞ →#{PAGE!}
.<<∂(12){!}∂(18)NAME\∞ ∞.∞ →#{PAGE!}>>
. ⊃
.		CENTER
.nam←"name";
%2{!}##{nam}%*{
.		skip 1;
.		END;
.      ⊃

.MACRO SSP(NAME,PHRASE,LABEL) ⊂
.	SKIP TO COLUMN 1
.SS("NAME","PHRASE","LABEL")  ⊃


.MACRO CAT(PHRASE,NAME) ⊂IF "PHRASE"≠NULL THEN
.	IF "PHRASE"="←" THEN SEND INDEX ⊂}<{PAGE}≤NAME≥{⊃
.	ELSE SEND INDEX ⊂}<{PAGE}≤PHRASE≥{⊃	⊃

.MACRO REFER (THIS,THAT) ⊂SEND INDEX ⊂}<⊗∪see∩ THAT≤THIS≥{⊃ ⊃

.AT "⊗→" SPECIFIC "↔" GENERIC "←" ⊂
.IF "GENERIC"≠NULL THEN
.	START	SEND INDEX ⊂}<{PAGE}≤GENERIC, SPECIFIC≥{⊃; "SPECIFIC GENERIC"; END
.ELSE	START	SEND INDEX ⊂}<{PAGE}≤SPECIFIC≥{⊃; "SPECIFIC"; END ⊃

.AT "⊗>" SPECIFIC "↔" GENERIC "←" ⊂
.IF "GENERIC"≠NULL THEN
.	START	SEND INDEX ⊂}<{PAGE}≤GENERIC, SPECIFIC {CATEGORY}≥{⊃; "SPECIFIC GENERIC"; END
.ELSE	START	SEND INDEX ⊂}<{PAGE}≤SPECIFIC {CATEGORY}≥{⊃; "SPECIFIC"; END ⊃

.MACRO SETCATEGORY(TEXT) ⊂ CATEGORY ← "TEXT" ;⊃

.MACRO APP(NAME,ABBREV,PHRASE,LABEL) ⊂
.		SECNAME ← IF "ABBREV"≠NULL THEN "ABBREV" ELSE "NAME";
.		SSNUMBER ← NULL;
.		SSNAME ← "Appendix "&(APPENDIX+1);
.	SKIP TO COLUMN 1; LABEL  NEXT APPENDIX!;
.		BEGIN
.		CENTER
%2APPENDIX {!}
.		SKIP
.NAM←↑"NAME"
{NAM}%*
.		SKIP 3
.		CAT("PHRASE","NAME");
.		SEND CONTENTS ⊂ SKIP;
∂4{APPENDIX!}∂8{NAM}→{PAGE!}{  ⊃
.		END	⊃

.MACRO APPX(NAME,ABBREV,PHRASE,LABEL) ⊂
.		SECNAME ← IF "ABBREV"≠NULL THEN "ABBREV" ELSE "NAME";
.		SSNUMBER ← NULL;
.		SSNAME ← "Appendix "&(APPENDIX+1);
.	SKIP TO COLUMN 1; LABEL  NEXT APPENDIX!;
.		BEGIN
.		CENTER
%2APPENDIX {!}
.		SKIP
.NAM←↑"NAME"
{NAM}%*
.		SKIP 1
.		CAT("PHRASE","NAME");
.		SEND CONTENTS ⊂ SKIP;
∂4{APPENDIX!}∂8{NAM}→{PAGE!}{  ⊃
.		END	⊃

.MACRO CENT (NAME,PHRASE) ⊂IF LINES ≤ 7 THEN SKIP TO COLUMN 1;;
.CAT("PHRASE","NAME");
.BEGIN CENTER PT24
%2NAME%*
.PT18; END
.⊃


.MACRO SVERBATIM ⊂VERBATIM; SELECT 3 ⊃

.MACRO SAMPLE ⊂SKIP 1; ONCE SVERBATIM ⊃

.COUNT FOOTNOTE INLINE  from 1 TO 99 BY 1 IN section printing ⊂"%8#{FOOTNOTE}%*"⊃;

.AT "⊗↓" ENTRY "←" ⊂NEXT FOOTNOTE ;! ;
.SEND FOOT ⊂
.BEGIN "FOOT";select 1;
.FILL
.INDENT par,0;
{!}ENTRY
.BREAK
.END "FOOT" ⊃ ⊃

.MACRO YON (LABEL) ⊂"page#";PAGE! LABEL⊃

.MACRO YONAPP (LABEL) ⊂"Appendix ";APPENDIX! LABEL⊃

.MACRO YONSEC (LABEL) ⊂"Chapter#";SECTION! LABEL⊃

.MACRO YONSS (LABEL) ⊂"Section#";SUBSECTION! LABEL⊃

.MACRO TABLE ⊂ BEGIN
.SKIP 1
.NARROW 2,2; GROUP; TABS 10 ; TURN ON "\" ;
.NOFILL ; PREFACE 0 ; SELECT 4;
.INDENT 0,9 ; BREAK ⊃


.TURN ON "¬" FOR "%"
.FOOTSEP ← "________________"
.SECNAME ← SSNUMBER ← SSNAME ← NULL
.ODD HEADING(¬c{SSNUMBER},,{SSNAME}	{PAGE}¬*)
.EVEN HEADING(¬c{PAGE}	{SECNAME},,{SSNUMBER}¬*)

.insert prefASS
.INSERT CONTENTS
.portion mainportion;
.COMPACT
.COUNT PAGE TO 999 printing "1";
.NEXT PAGE